
package pincipal.pack;

import java.util.ArrayList;

import partidas.Partida;
import materiales.Material;
import database.Consulta;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.database.Cursor;
import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.view.Window;
import android.view.View.OnClickListener;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;
import android.widget.AdapterView.OnItemClickListener;

public class DetallePartida extends Activity {
	
	private TextView titulo;
	private TextView nombre;
	private TextView cant;
	private TextView observaciones;
	private Bundle bundle;
	private ListView listViewMateriales;
	private Partida partida;
	private Button volverAtras;
	private Button volverMenuPrincipal;
	private ArrayList<String> arrayMateriales;	
	private ArrayList<String> rendimientos = new ArrayList<String>();
	private String cantidad;
	
	String[] lista = new String[]{};
	
	@Override
	public void onCreate(Bundle b)
	{
		super.onCreate(b);
		requestWindowFeature( Window.FEATURE_NO_TITLE );
		setContentView(R.layout.detallepartida);	
		bundle = getIntent().getExtras();	
		partida = (Partida)getIntent().getSerializableExtra("PARTIDA");		
		this.titulo = (TextView)findViewById(R.id.textViewVentana);	
		this.volverMenuPrincipal = (Button)findViewById(R.id.menuPrincipal);
		this.volverMenuPrincipal.setBackgroundResource(R.drawable.home);
		this.volverAtras = (Button)findViewById(R.id.volverAtras);
		this.volverAtras.setBackgroundResource(R.drawable.back);	
		nombre = (TextView)findViewById(R.id.nombrePartida);
		nombre.setText(partida.getNombre());
			
		cantidad = bundle.getString("CANTIDAD");

		cant = (TextView)findViewById(R.id.cantidad);
		cant.setText(cantidad);
				
		observaciones = (TextView)findViewById(R.id.observaciones);
		observaciones.setText(partida.getObservaciones());	
		arrayMateriales = partida.getMateriales();	
		rendimientos = partida.getRendimientos();
		
		listViewMateriales = (ListView)findViewById(R.id.listaMaterialesPartida);	
		ArrayAdapter<String> adaptador = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, arrayMateriales);
		listViewMateriales.setAdapter(adaptador);
		
		this.volverMenuPrincipal.setOnClickListener( new OnClickListener()
        {
        	public void onClick(View v)
        	{
        		Intent intent = new Intent(DetallePartida.this, CubicMagic.class);
        		startActivity(intent);
        	}   	
        });
			
		this.volverAtras.setOnClickListener( new OnClickListener()
        {
        	public void onClick(View v)
        	{       		
        		if(bundle.getString("VOLVER").equals("BUSCAR"))
        		{
        			actualizar();
        		}
        		else
        		{
        			volverPresupuesto();
        		}
        	}      	
        });		
		
		listViewMateriales.setOnItemClickListener( new OnItemClickListener()
		{
			public void onItemClick(AdapterView<?> a, View v, int position, long id) 
    		{	    		
	    			String materialClickeado = (listViewMateriales.getItemAtPosition(position).toString());

	    			Cursor materialBD = Consulta.consultMaterialNombre(DetallePartida.this, materialClickeado);
	    			String unidad = null;
	    			String costo = null;
	    			String observacion = null;
	    			
	    			if (materialBD.moveToFirst())
	                {
	                	do {
	                		unidad = materialBD.getString(2);
	                		costo = materialBD.getString(3);
	                		observacion = materialBD.getString(4);	                			                		   
	                   } while(materialBD.moveToNext()); 
	                	
	                } 
	    			
	    			Material materialNuevo = new Material(0, materialClickeado, unidad, costo, observacion);
		            Cursor rendimiento = Consulta.consultMaterialPartida(DetallePartida.this, partida.getNombre(), materialClickeado);
		            String rendimientoMaterial = null;
		            if (rendimiento.moveToFirst())
	                {
	                	do {
	                		rendimientoMaterial = rendimiento.getString(2);	                			                		   
	                   } while(materialBD.moveToNext()); 
	                	
	                } 

		            Bundle bundle1 = new Bundle();
		            Intent intent = new Intent(DetallePartida.this, DetalleMaterial.class);
		    		bundle1.putSerializable("MATERIAL", materialNuevo);
		    		bundle1.putString("RENDIMIENTO", rendimientoMaterial);
		    		bundle1.putSerializable("PARTIDA", partida);
		    		bundle1.putSerializable("PRESUPUESTO", bundle.getSerializable("PRESUPUESTO"));
		    		bundle1.putString("VOLVER", bundle.getString("VOLVER"));
		    		bundle1.putString("DETALLE", "DETALLE");
		    		bundle1.putString("CANTIDAD", cantidad);
		    		
		    		intent.putExtras(bundle1);
		    		startActivity(intent);
    		} 
		});
	}

	private void volverPresupuesto()
	{
		Bundle bund = new Bundle();
		Intent intent = new Intent(DetallePartida.this, VerPresupuesto.class);
		bund.putSerializable("PRESUPUESTO",bundle.getSerializable("PRESUPUESTO"));
		intent.putExtras(bund);       		
		startActivity(intent);
	}
	
	private void actualizar()
	{
		Partida partida;
		Cursor fila =(Cursor)Consulta.consultPartidas(DetallePartida.this);
		String[] lista = new String[]{};
		lista = new String[fila.getCount()];
		ArrayList<Partida> arrayMat = new ArrayList<Partida>();
		int i = 0;
		if (fila.moveToFirst())
        {
        	do {
    
        		lista[i] = fila.getString(1);
        		partida = new Partida( fila.getInt(0), fila.getString(1), fila.getString(2)); 		
        		arrayMat.add(partida);
                i++;
                String nombrePartida = partida.getNombre();
                Cursor materiales =(Cursor)Consulta.consultMaterialesPartida(DetallePartida.this, nombrePartida);
                if (materiales.moveToFirst())
                {
                	do {
                		String material = materiales.getString(1);
                		String rendimiento = materiales.getString(2);
                		partida.setMaterial(material, rendimiento);       
                   } while(materiales.moveToNext());    	
                } 
                
           } while(fila.moveToNext());    	
        } 	
		Bundle bundleMaterial = new Bundle();
		bundleMaterial.putStringArray("LISTA", lista);
		bundleMaterial.putString("TIPO", "partida");
		
		Intent intent = new Intent(DetallePartida.this, Buscar.class);
		intent.putExtra("ARRAY",arrayMat);
		intent.putExtras(bundleMaterial);       		
		startActivity(intent);
	}

}
